In diesem Kapitel schauen wir uns das Lesen und Schreiben von Dateien in PHP an. Dies macht häufig Sinn, wenn sich eine komplexe Datenbank-Anbindung nicht lohnt. In unserem Beispiel verwenden wir eine Textdatei als Protokoll für alle Anmeldeversuche in unserem System. Dabei wird zunächst versucht, eine Datei mit dem Namen protokoll.txt aus demselben Verzeichnis, in dem das Skript ausgeführt wird, auszulesen. Diese Datei ist beim ersten Aufruf noch nicht vorhanden, aus diesem Grund muss ein passender Modus gewählt werden: In diesem Fall ist das der Modus a: Die Datei ist nur zum Schreiben geöffnet und platziert den Dateizeiger auf das Dateiende. Existiert die Datei nicht, so wird versucht, diese zu erzeugen. Der Modus ist immer abhängig vom Anwendungsfall. Wenn die Datei existiert, wird in der Variablen "datei" eine Referenz auf die offene Datei abgelegt. Diese Referenz nennt man auch Ressource oder Handle. Über diese Referenz kann nun in die Datei geschrieben werden, für uns ist relevant: Die Uhrzeit, der Username und die IP-Adresse. Bitte beachten Sie Datenschutzvorgaben, wenn Sie dies auf einer realen Seite tun! Nachdem fwrite abgeschlossen ist, kann die Bearbeitung mit fclose beendet werden. Wir erweitern dabei unsere auswertung.php-Datei mit den folgenden Zeilen, um jeden Anmeldeversuch in die Datei protokoll.txt zu schreiben. Unten sehen Sie dann, was in die Datei geschrieben wird. Schauen wir uns nun die Befehle an zur Handhabung von Dateien. Mit fopen wird eine Datei geöffnet und der Modus vorgegeben. Im Wesentlichen ist das Schreiben, Lesen und Schreiben mit Zeiger auf das Ende der Datei, nur Lesen, Lesen und Schreiben mit Zeiger auf den Anfang der Datei ohne Anlegen, zum Schreiben mit Neuerstellung sowie Lesen und Schreiben mit Zeiger auf den Anfang der Datei mit Anlegen einer nicht existierenden Datei. Hier haben wir die Funktionen zum Schließen einer offenen Datei, zum Lesen einer Anzahl Zeichen oder bis zum Zeilenumbruch, zum Lesen einer Comma-Separated-Values Datei (CSV) sowie zum Schreiben in eine Datei. Hier kommen Funktionen zur Abfrage, ob ein Handle überhaupt eine Datei ist, ob eine Datei existiert, das Datum und die Uhrzeit der letzten Änderung an einer Datei sowie die Größe einer Datei. Zum Abschluss noch eine Funktion zum Verriegeln einer Datei, damit sie nicht mehrfach geöffnet wird sowie eine Funktion zum Löschen einer Datei. Wie immer: Probieren Sie es aus!